| 管理者ガイド > サンプルとチュートリアル > チュートリアル > マルチテナントに対するUserContext属性の設定(ページレポート/RDLレポート) |
このチュートリアルでは、カスタムセキュリティプロバイダを構成し、レポートにUserContext属性を使用することによって、レポートにログインユーザー固有のデータを提供する方法を説明します。
カスタムセキュリティプロバイダを構成すると、外部のデータベースに保存されているユーザー情報を使用してActiveReports Serverにログインできるようになるほか、ユーザーごとにUserContext属性を設定することができます。UserContext属性を使用すると、ログインしているユーザーに応じて、表示するデータ、データベースの接続文字列、SQLのクエリなどを動的に制御することができます。この機能は、複数の顧客に対してサービスを提供する、マルチテナント型のSaasとしてActiveReports Serverを活用する場合に有用です。
![]() |
注意:
SQLite ODBC Driver(sqliteodbc.exeをダウンロード)
|
ActiveTunesデータベースを使用してマルチテナント用レポートを作成する
をクリックします。
| SQLクエリ |
コードのコピー
|
|---|---|
Select * from Invoice where CustomerID=?; |
|



| セル | フィールド |
| 左側のセル | InvoiceID |
| 真ん中のセル | InvoiceDate |
| 右側のセル | Total |
テーブルの書式を設定する(オプション)
ActiveReportsデザイナに追加したテーブルの書式を設定するにはいくつかの方法があります。書式設定の詳細については、ActiveReportsユーザーガイドの「Table」を参照してください。

| プロパティ名 | プロパティの値 |
| FixedSize | 6.5in, 7in |
| Location | 0in, 0.5in |
| RepeatHeaderOnNewPage | True |
| Size | 6.4in, 0.7in |
| セル | プロパティの値 |
| 左側のセル | 請求書番号 |
| 真ん中のセル | 発行日 |
| 右側のセル | 合計額 |

| プロパティ名 | プロパティの値 |
| Format | c |
| Language | 英語(米国) |
| Value | =Sum(Fields!Total.Value) |
レポートをActiveReports Serverにアップロードする
をクリックします。
カスタムセキュリティプロバイダを設定する
このトピックでは、ActiveReports Serverとともにインストールされているカスタムセキュリティプロバイダのサンプルプロジェクトを使用します。このサンプルは、デフォルトで次の場所に配置されています。
C:\ActiveReports 11.0J Server\SDK\Samples\ActiveTunes.SecurityProvider
カスタムセキュリティプロバイダの設定方法の詳細については、「カスタムセキュリティプロバイダのデバッグ」を参照してください。
ActiveReports Server上のレポートにパーミッションを設定する
ActiveReports Server上では、レポートのパーミッションを変更して、複数のユーザーがレポートを読み取れるようにする必要があります。
レポートの読み取りのパーミッションを付与する方法については、「パーミッションの管理」を参照してください。

ActiveReports Server上のレポートをプレビューする

ユーザーをAdministratorロールに追加する
ActiveTunes.SecurityProviderのユーザーは、UserContext属性を使用してレポートの[サーバー共有データソース]ダイアログに動的なクエリを入力するために、Administratorロールに追加される必要があります。
このトピックでは、ActiveReports Serverとともにインストールされているカスタムセキュリティプロバイダのサンプルプロジェクトを使用します。このサンプルは、デフォルトで次の場所に配置されています。
C:\ActiveReports 11.0J Server\SDK\Samples\ActiveTunes.SecurityProvider
をpublic readonly string Customers = "ActiveTunesCustomer";
public readonly string Customers = "ActiveTunesEmployee";
に変更します。public readonly string Customers = "Administrator";
public readonly string Employees = "Administrator";
カスタムセキュリティプロバイダを設定する
このトピックでは、ActiveReports Serverとともにインストールされているカスタムセキュリティプロバイダのサンプルプロジェクトを使用します。このサンプルは、デフォルトで次の場所に配置されています。
C:\ActiveReports 11.0J Server\SDK\Samples\ActiveTunes.SecurityProvider
カスタムセキュリティプロバイダの設定方法の詳細については、「カスタムセキュリティプロバイダのデバッグ」を参照してください。
ActiveTunesデータベースを使用してマルチテナント用レポートを作成する
をクリックします。| SQLクエリ |
コードのコピー
|
|---|---|
="select * from Invoice where CustomerID = " + Code.UserContext.GetValue("CustomerID") |
|



| セル | フィールド |
| 左側のセル | InvoiceID |
| 中央のセル | InvoiceDate |
| 右側のセル | Total |
テーブルの書式を設定する(オプション)
ActiveReportsデザイナに追加したテーブルの書式を設定するにはいくつかの方法があります。書式設定の詳細については、ActiveReportsユーザーガイドの「Table」を参照してください。

| プロパティ名 | プロパティの値 |
| FixedSize | 6.5in, 7in |
| Location | 0in, 0.5in |
| RepeatHeaderOnNewPage | True |
| Size | 6.4in, 0.7in |
| セル | プロパティの値 |
| 左側のセル | 請求書番号 |
| 中央のセル | 発行日 |
| 右側のセル | 合計額 |

| プロパティ名 | プロパティの値 |
| Format | c |
| Language | 英語(米国) |
| Value | =Sum(Fields!Total.Value) |
レポートをActiveReports Serverにアップロードする
をクリックします。
ActiveReports Server上のレポートをプレビューする
